/**
 * 
 */
package algo3c2g15.vista;

import java.awt.Toolkit;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JFrame;

import algo3c2g15.business.Juego;
import algo3c2g15.utils.Constantes;
import algo3c2g15.utils.VistaMapa;

/**
 * @author De La
 *
 */
@SuppressWarnings("serial")
public class VentanaPrincipal extends JFrame{
	
	private static VentanaPrincipal instance = null;
	private Juego juego;
	private String jugador1 = "Jugador 1";
	private String jugador2 = "CPU";
	private Integer algoPesosIniciales = 7;
	private VistaMapa mapa = new VistaMapa (Constantes.MAPA,"Mapa 1");
	
	private VentanaPrincipal(Juego juego) {		
		super("Program & Conquer III");
		this.juego = juego;
		setBounds(200, 100, 260, 350);
		MenuPrincipal menuPrincipal = new MenuPrincipal();
		menuPrincipal.setBounds(0,0,260,350);
		menuPrincipal.setLayout(null);
		add(menuPrincipal);
		
		setVisible(true);
		setResizable(false);
		this.setLocation((int)Math.round(Toolkit.getDefaultToolkit().getScreenSize().getWidth()/2) - this.getWidth()/2, (int)Math.round(Toolkit.getDefaultToolkit().getScreenSize().getHeight()/2) - this.getHeight()/2);;
		addWindowListener(new CloseListener());
	}
	
	public static void create(Juego juego){
		if (instance == null){
			instance = new VentanaPrincipal(juego);
		}
	}
	
	public static VentanaPrincipal getInstance(){
		return instance;
	}
	
	public static class CloseListener extends WindowAdapter {
		public void windowClosing(WindowEvent e)
		{	
			e.getWindow().dispose();
			System.exit(0);
		}
	}

	/**
	 * @return the jugador1
	 */
	public String getJugador1() {
		return jugador1;
	}

	/**
	 * @param jugador1 the jugador1 to set
	 */
	public void setJugador1(String jugador1) {
		this.jugador1 = jugador1;
	}

	/**
	 * @return the jugador2
	 */
	public String getJugador2() {
		return jugador2;
	}

	/**
	 * @param jugador2 the jugador2 to set
	 */
	public void setJugador2(String jugador2) {
		this.jugador2 = jugador2;
	}

	/**
	 * @return the algoPesosIniciales
	 */
	public Integer getAlgoPesosIniciales() {
		return algoPesosIniciales;
	}

	/**
	 * @param algoPesosIniciales the algoPesosIniciales to set
	 */
	public void setAlgoPesosIniciales(Integer algoPesosIniciales) {
		this.algoPesosIniciales = algoPesosIniciales;
	}

	/**
	 * @return the juego
	 */
	public Juego getJuego() {
		return juego;
	}

	/**
	 * @param juego the juego to set
	 */
	public void setJuego(Juego juego) {
		this.juego = juego;
	}

	public VistaMapa getMapa() {
		return mapa;
	}

	public void setMapa(VistaMapa mapa) {
		this.mapa = mapa;
	}


}
